﻿namespace BlamanticUI.Components;

/// <summary>
/// Render a container that has group of <see cref="Card"/> components to layout together.
/// </summary>
[CssClass("cards")]
public class CardGroup : BlazorParentComponentBase<CardGroup>, IHasUIComponent,IHasChildContent, IHasHorizontal, IHasInverted, IHasSpan, IHasDoubling, IHasStackable
{
    /// <summary>
    /// Initializes a new instance of the <see cref="CardGroup"/> class.
    /// </summary>
    public CardGroup()
    {
    }

    /// <summary>
    /// Gets or sets a value indicating whether all <see cref="Card"/> are horizontal layout.
    /// </summary>
    /// <value>
    ///   <c>true</c> if horizontal; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Horizontal { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether adapted inverted background by parent component.
    /// </summary>
    /// <value>
    ///   <c>true</c> if adapted; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Inverted { get; set; }
    /// <summary>
    /// Gets or sets the span of each card.
    /// </summary>
    [Parameter] public SpanSize? Span { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether double column of layout in responsive adapter.
    /// </summary>
    /// <value>
    ///   <c>true</c> if doubling; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Doubling { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether layout always stackable.
    /// </summary>
    /// <value>
    ///   <c>true</c> if stackable; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Stackable { get; set; }
    /// <summary>
    /// A segment of UI content to render.
    /// </summary>
    [Parameter]public RenderFragment? ChildContent { get; set; }
}
